%%
%% This is file `xcolor.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xcolor.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from xcolor.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file xcolor.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
%% ---------------------------------------------------------
%% Copyright (C) 2003-2004 by Dr. Uwe Kern <xcolor@ukern.de>
%% ---------------------------------------------------------
%%
%% Please send error reports and suggestions for
%% improvements to the above email address.
%%
%% This package contains code copied from
%%
%% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)]
%% Copyright (C) 1994--1999 David Carlisle
%%
%% which is part of the Standard LaTeX `Graphics Bundle'.
%%
\def\XCfilesource{xcolor.dtx}%
\def\XCfileversion{v2.00}%
\def\XCfiledate{2004/07/04}%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xcolor}[\XCfiledate\space\XCfileversion\space
                         LaTeX color extensions (UK)]
\edef\XC@catcodes
 {\catcode`\noexpand\!\the\catcode`\!\relax
  \catcode`\noexpand\:\the\catcode`\:\relax
  \catcode`\noexpand\-\the\catcode`\-\relax
  \catcode`\noexpand\+\the\catcode`\+\relax
  \catcode`\noexpand\;\the\catcode`\;\relax
  \catcode`\noexpand\"\the\catcode`\"\relax
  \catcode`\noexpand\^^A\the\catcode`\^^A\relax}
\catcode`\!=12
\catcode`\:=12
\catcode`\-=12
\catcode`\+=12
\catcode`\;=12
\catcode`\"=12
\catcode`\^^A=\catcode`\%
\newif\ifcolors@ \colors@true
\newif\ifcolorerrors@
\newif\ifglobalcolors \globalcolorsfalse
\newif\ifconvertcolorsD
\newif\ifconvertcolorsU
\newif\ifblendcolors
\newif\ifmaskcolors
\newif\ifXC@@tst
\def\c@lor@error#1%
 {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc
  \else\PackageWarning{xcolor}{Undefined color #1}\fi}
\def\XC@append#1#2%
 {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else
  \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi}
\def\selectcolormodel#1%
 {\@ifundefined{XC@mod@#1}%
   {\c@lor@error{model `#1'}}%
   {\expandafter\ifx\csname XC@mod@#1\endcsname\XC@mod@natural
      \def\XC@tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse
    \else
      \edef\XC@tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue
    \fi}}
\def\XC@mod@named{named}
\@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do
 {\expandafter\let\csname XC@mod@\@@tmp\endcsname\@@tmp
  \edef\@@tmp
   {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}%
  \@@tmp}
\DeclareOption{monochrome}
 {\ExecuteOptions{hideerrors}%
  \AtEndOfPackage
   {\colors@false
    \def\set@color{\c@lor@special\m@ne
      {color push \current@color}\aftergroup\reset@color}%
    \def\reset@color{\c@lor@special\m@ne{color pop}}%
    \def\set@page@color{\c@lor@special\m@ne{background \current@color}}}}
\let\XC@colornames\relax
\DeclareOption{dvipsnames}{\XC@append\XC@colornames{\input{dvipsnam.def}}}
\DeclareOption{svgnames}{\XC@append\XC@colornames{\input{svgnam.def}}}
\DeclareOption{pst}{\def\XC@pst{\RequirePackage{pstcol}}}
\DeclareOption{table}{\def\XC@table{\RequirePackage{colortbl}}}
\DeclareOption{hyperref}
 {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do
   {\expandafter\edef\csname KV@Hyp@x\@@tmp bordercolor\endcsname #1%
     {\noexpand\XC@bordercolor{\@@tmp}{#1}}}%
  \AtEndOfPackage
   {\GetGinDriver\def\KV@Hyp@xpdfborder#1{\edef\@pdfborder{#1}}%
    \@tfor\@@tmp:={dvips}\do
     {\ifx\GinDriver\@@tmp
       \def\KV@Hyp@xpdfborder#1%
        {\edef\@pdfborder{#1}\expandafter\XC@pdfborder\@pdfborder\relax}%
      \@break@tfor\fi}}}
\providecommand\Gin@driver{}
\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvips}{dvipsone}{dviwin}{emtex}%
              {pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}{tcidvi}%
              {textures}{truetex}{vtex}\do
 {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}%
    {\noexpand\def\noexpand\Gin@driver{\@@tmp.def}}}%
  \@@tmp}
\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}}
\DeclareOption{oztex}{\ExecuteOptions{dvips}}
\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}}
\DeclareOption{showerrors}{\colorerrors@true}
\DeclareOption{hideerrors}{\colorerrors@false}
\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout}
\DeclareOption*%
 {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}}
\ExecuteOptions{natural,showerrors}
\InputIfFileExists{color.cfg}{}{}
\ProcessOptions\relax
\if!\Gin@driver!
  \PackageError{xcolor}
    {No driver specified}
    {You should make a default driver option in a file \MessageBreak
     color.cfg\MessageBreak
     eg: \protect\ExecuteOptions{dvips}}
\else
  \PackageInfo{xcolor}{Driver file: \Gin@driver}
  \@ifundefined{ver@\Gin@driver}{\input{\Gin@driver}}{}
\fi
\@nameuse{XC@pst}
\@namedef{ver@color.sty}{1999/02/16}
\@nameuse{XC@table}
\long\def\@secondoffive#1#2#3#4#5{#2}
\def\@namelet#1#2%
 {\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
\def\@namexdef#1{\expandafter\xdef\csname #1\endcsname}
\def\aftergroupdef#1#2%
 {\edef\@@tmp{\noexpand\def\noexpand#1{#2}}%
  \expandafter\endgroup\@@tmp}
\begingroup
\catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13
\catcode`\;=13 \catcode`\"=13
\gdef\XC@edef#1#2%
 {\begingroup
  \ifnum\catcode`\!=13 \edef!{\string!}\fi
  \ifnum\catcode`\:=13 \edef:{\string:}\fi
  \ifnum\catcode`\-=13 \edef-{\string-}\fi
  \ifnum\catcode`\+=13 \edef+{\string+}\fi
  \ifnum\catcode`\;=13 \edef;{\string;}\fi
  \ifnum\catcode`\"=13 \edef"{\string"}\fi
  \edef\@@tmp{#2}\@onelevel@sanitize\@@tmp
  \aftergroupdef#1\@@tmp}
\endgroup
\def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@}
\def\@@ifxempty#1#2\XC@@
 {\ifx#1\@@ifxempty
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi}
\def\xglobal{\xglobal@stop\begingroup\futurelet\@@tok\xglobal@test}
\def\xglobal@test
 {\expandafter\@tfor\expandafter\@@tmp
   \expandafter:\expandafter=\xglobal@list\do
    {\expandafter\ifx\@@tmp\@@tok
       \aftergroup\let\aftergroup\xglobal@\@break@tfor\fi}%
  \endgroup\global}
\def\xglobal@stop{\let\xglobal@\@empty}
\xglobal@stop
\def\xglobal@list
 {\definecolor\providecolor\colorlet\definecolorset\providecolorset
  \blendcolors\maskcolors}
\def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi}
\def\GetGinDriver{\expandafter\GetGinDriver@\Gin@driver.:}
\def\GetGinDriver@#1.#2:%
 {\def\GinDriver{#1}\@tempswatrue
  \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}%
  \do{\ifx\GinDriver\@@tmp\@tempswafalse\@break@tfor\fi}%
  \if@tempswa\def\GinDriver{hypertex}\fi}
\def\@hex@Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi}
\def\@hex@@Hex#1%
 {\if#1aA\else \if#1bB\else \if#1cC\else \if#1dD\else \if#1eE\else
  \if#1fF\else #1\fi\fi\fi\fi\fi\fi \@hex@Hex}
\def\rdivide#1#2%
 {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}%
  \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax
  \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
    \def\@sign{}\fi
  \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi
  \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen
    \lshift\@tempdima \lshift\@tempdimb \fi\fi
  \@tempcnta=\@tempdima \@tempcntb=\@tempdimb
  \count@=\@tempcnta \divide\count@\@tempcntb
  \edef\@@tmp{\number\count@.}%
  \@tempswatrue  \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide
  \@tempswafalse \@rdivide
  \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen@.00001\p@\fi
  \dimen@\@sign\dimen@
  \edef\@@tmp{\the\toks@\the\dimen@}%
  \expandafter\endgroup\@@tmp}
\def\@rdivide
 {\multiply\count@\@tempcntb \advance\@tempcnta-\count@
  \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb
  \if@tempswa\edef\@@tmp{\@@tmp\number\count@}\fi}
\def\rmultiply#1#2%
 {\begingroup
  \edef\@@mul{#2}\@tempdima\the#1\relax
  \afterassignment\@tempdimb\@tempcntb=\@@mul\p@
  \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
    \def\@sign{}\fi
  \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi
  \lshift\@tempdima \dimen@\z@
  \expandafter\@rmultiply\@@mul.0.\@nil
  \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@
  \dimen@\@sign\dimen@
  \edef\@@tmp{#1\the\dimen@}%
  \expandafter\endgroup\@@tmp}
\def\@rmultiply#1.#2.#3\@nil
 {\def\@@tmp{}%
  \@tfor\@@mul:=#2\do
   {\edef\@@tmp
     {\advance\dimen@\@@mul\@tempdima \divide\dimen@10 \@@tmp}}%
  \@@tmp}
\def\lshift#1{#1\expandafter\lshift@\the#1}
\def\llshift#1{\lshift#1\lshift#1}
\def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:}
\def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z@.#3\fi}
\def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:}
\def\llshiftnum@#1.#2#3#4.#5:%
 {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z@.#4\fi}
\def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@}
\def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@}
\def\rshift#1{#1\expandafter\rshift@\the#1}
\def\rrshift#1{\rshift#1\rshift#1}
\begingroup
\catcode`P=12
\catcode`T=12
\lowercase
 {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z@.##3\fi\p@}
             \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}}
\expandafter\endgroup\@@tmp
\def\rshift@@#1#2%
 {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi}
\def\XC@inflate#1#2#3#4%
 {\edef#4{#2,\ifx#1\XC@mod@cmyk #3\else
             \ifx#1\XC@mod@gray ,,,#3,,,\else ,#3,\fi\fi}}
\def\XC@vec#1,#2,#3,#4,#5,#6,#7,#8,#9%
 {\def\@@tmp{}%
  \XC@vec@{#1}{#5}%
  \@ifxempty{#2}{}%
   {\XC@vec@{#2}{#6}\XC@vec@{#3}{#7}\@ifxempty{#4}{}{\XC@vec@{#4}{#8}}}%
  \aftergroupdef#9\@@tmp}
\def\XC@add{\begingroup \let\XC@vec@\XC@add@ \XC@vec}
\def\XC@add@#1#2%
 {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}%
  \advance\dimen@\@tempdima \rrshift\dimen@
  \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}}
\def\XC@sub{\begingroup \let\XC@vec@\XC@sub@ \XC@vec}
\def\XC@sub@#1#2{\XC@add@{#1}{-#2}}
\def\XC@mul{\begingroup \let\XC@vec@\XC@mul@ \XC@vec}
\def\XC@mul@#1#2%
 {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@
  \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}}
\def\XC@mix%
 {\begingroup
  \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima
  \let\XC@vec@\XC@mix@ \XC@vec}
\def\XC@mix@#1#2%
 {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@
  \edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip@pt\dimen@}}
\def\XC@calc@#1,#2,#3,#4,#5:#6%
 {\toks@\expandafter{\csname XC@calc#6\endcsname}%
  \the\toks@{#1}\@@tmp
  \@ifxempty{#2}{}%
   {\the\toks@{#2}\@tempa \the\toks@{#3}\@tempb
    \@ifxempty{#4}%
     {\edef\@@tmp{\@@tmp,\@tempa,\@tempb}}%
     {\the\toks@{#4}\@tempc \edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}}}}
\def\XC@calcC#1#2%
 {\lshiftset\dimen@{-#1}\advance\dimen@10\p@ \rshift\dimen@
  \edef#2{\strip@pt\dimen@}}
\def\XC@calcD#1#2%
 {\dimen@#1\p@ \rdivide\dimen@\@@scl \edef#2{\strip@pt\dimen@}}
\def\XC@calcH#1#2%
 {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}%
  \multiply\count@-\sixt@@n \advance\count@#1
  \edef#2{\XC@@tmp\hexnumber@\count@}}
\def\XC@calcM#1#2%
 {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen@.5\p@
  \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}}
\def\XC@calcN#1#2%
 {\edef#2{#1}%
  \edef#2{\ifdim#2\p@<\z@0\else \ifdim#2\p@<\p@
          0\expandafter\XC@@calcN#2.0.:\else 1\fi\fi}}
\def\XC@@calcN#1.#2.#3:%
 {\ifnum0#2=0 \else.\XC@@@calcN#2:\fi}
\def\XC@@@calcN#1#2:%
 {\ifnum0#1#2=0 \else #1\ifnum0#2=0 \else \XC@@@calcN#2:\fi\fi}
\def\XC@calcS#1#2%
 {\lshiftset\dimen@{#1}\dimen@\lshiftnum\@@scl\dimen@ \rrshift\dimen@
  \edef#2{\strip@pt\dimen@}}
\def\XC@calcT#1#2%
 {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@
  \edef#2%
   {\ifdim\dimen@>\p@1\else\ifdim\dimen@<\z@0\else\strip@pt\dimen@\fi\fi}}
\def\XC@calcU#1#2%
 {\dimen@#1\p@
  \ifdim\dimen@=\p@\else
    \afterassignment\dimen@\count@=\the\dimen@
    \ifnum\count@<\z@
      \lshift\dimen@ \dimen@-\dimen@ \advance\dimen@10\p@ \rshift\dimen@
    \fi
  \fi
  \edef#2{\strip@pt\dimen@}}
\ifx\rangeRGB\@undefined\def\rangeRGB{255}\fi
\ifx\rangeHSB\@undefined\def\rangeHSB{240}\fi
\ifx\rangeGray\@undefined\def\rangeGray{15}\fi
\ifx\adjustUCRBG\@undefined\def\adjustUCRBG{1,1,1,1}\fi
\ifx\colorseriescycle\@undefined\def\colorseriescycle{16}\fi
\def\XC@clr@rgb@white{,,}
\def\XC@clr@cmy@white{0,0,0}
\def\XC@clr@cmyk@white{0,0,0,0}
\def\XC@clr@hsb@white{\@@hue,0,}
\def\XC@clr@hsb@gray{\@@hue,0,.5}
\def\XC@clr@hsb@black{\@@hue,0,0}
\def\XC@clr@gray@white{}
\@tfor\@@tmp:={grad}{last}{step}\do
 {\@namelet{XC@met@\@@tmp}{@@tmp}}
\def\definecolor{\@testopt{\XC@definecolor}{}}
\def\XC@definecolor[#1]#2#3#4%
 {\@ifundefined{XC@mod@#3}%
   {\c@lor@error{model `#3'}}%
   {\begingroup
    \edef\@@cls{#1}\XC@edef\@@nam{#2}\edef\@@mod{#3}\XC@edef\@@clr{#4}%
    \XC@logdef\@@nam
    \ifx\@@mod\XC@mod@named
      \XC@@colorlet\@@nam\@@clr
    \else
      \ifconvertcolorsD
        \edef\@@mod{\XC@tgt@mod{#3}}\convertcolorspec{#3}\@@clr\@@mod\@@clr
      \fi
      \XC@coremodel\@@mod\@@clr
      \csname color@\@@mod\expandafter\endcsname
        \expandafter\@@drv\expandafter{\@@clr}%
      \ifx\@@cls\@empty
        \@temptokena{}%
      \else
        \@nameuse{define@color@\@@cls}{\@@nam}\@@drv
        \@temptokena\expandafter{\@@col}%
        \csname color@\@@cls\expandafter\endcsname
          \expandafter\@@drv\expandafter{\@@nam}%
      \fi
      \toks@\expandafter{\@@drv}%
      \edef\@@tmp
       {\ifglobalcolors\global\else\xglobal@\fi
        \noexpand\@namedef{\string\color@\@@nam}%
         {\noexpand\xcolor@{\the\@temptokena}{\the\toks@}{\@@mod}{\@@clr}}}%
    \fi
    \expandafter\endgroup\@@tmp\xglobal@stop}}
\let\xdefinecolor\definecolor
\def\providecolor{\@testopt{\XC@providecolor}{}}
\def\XC@providecolor[#1]#2#3#4%
 {\XC@edef\XC@@tmp{#2}%
  \@ifundefined{\string\color@\XC@@tmp}{\definecolor[#1]{#2}{#3}{#4}}%
   {\ifnum\XC@tracing>0
      \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi}}
\def\xcolor@#1#2#3#4{#2}
\def\colorlet#1{\@testopt{\XC@colorlet{#1}}{}}
\def\XC@colorlet#1[#2]#3%
 {\begingroup
  \XC@edef\@@nam{#1}\edef\@@mod{#2}\XC@edef\@@tmp{#3}\XC@@tsttrue
  \@ifundefined{\string\color@\@@tmp}%
    {}{\ifx\@@mod\@empty\XC@@tstfalse\fi}%
  \ifXC@@tst
    \extractcolorspec\@@tmp\@@tmp
    \ifx\@@mod\@empty\else
      \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
      \edef\@@tmp{{\@@mod}{\@@tmp}}\fi
    \edef\@@tmp{\noexpand\XC@definecolor[]{\@@nam}\@@tmp}%
  \else
    \XC@logdef\@@nam\XC@@colorlet\@@nam\@@tmp
  \fi
  \expandafter\endgroup\@@tmp\xglobal@stop}
\def\XC@@colorlet#1#2%
 {\@ifundefined{\string\color@#2}%
   {\c@lor@error{`#2'}\let\@@tmp\@empty}%
   {\edef\@@tmp
     {\ifglobalcolors\global\else\xglobal@\fi
      \noexpand\@namelet{\string\color@#1}{\string\color@#2}}}}
\def\DefineNamedColor#1{\XC@definecolor[#1]}
\def\definecolorset
 {\let\XC@defclr\definecolor\@testopt{\XC@definecolorset}{}}
\def\XC@definecolorset[#1]#2#3#4#5%
 {\XC@edef\XC@@tmp{#5}\let\XC@@glb\xglobal@
  \def\XC@@definecolorset##1,##2;%
   {\@ifxempty{##1}{}%
     {\let\xglobal@\XC@@glb
      \XC@defclr[#1]{#3##1#4}{#2}{##2}\XC@@definecolorset}}%
  \expandafter\XC@@definecolorset\XC@@tmp;,;}
\def\providecolorset
 {\let\XC@defclr\providecolor\@testopt{\XC@definecolorset}{}}
\def\definecolorseries#1#2#3%
 {\@testopt{\XC@definecolorseries{#1}{#2}{#3}}{}}
\def\XC@definecolorseries#1#2#3[#4]#5%
 {\@testopt{\XC@@definecolorseries{#1}{#2}{#3}[#4]{#5}}{}}
\def\XC@@definecolorseries#1#2#3[#4]#5[#6]#7%
 {\begingroup
  \edef\@@mod{#2}%
  \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}%
  \expandafter\convertcolorspec\@@clr\@@mod\@@clr
  \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}%
  \edef\@@met{#3}%
  \ifx\@@met\XC@met@last
    \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}%
    \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
    \XC@inflate\@@mod\@@tmp\@@clr\@@tmp
    \expandafter\XC@sub\@@tmp,\@@tmp
  \else
    \edef\@@tmp{#7}%
  \fi
  \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}%
  \endgroup}
\def\resetcolorseries{\@testopt{\XC@resetcolorseries}{}}
\def\XC@resetcolorseries[#1]#2%
 {\begingroup
  \@namexdef
   {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}%
  \@namelet{@@tmp}{\string\colorD@#2}%
  \edef\@@met{\expandafter\@firstoftwo\@@tmp}%
  \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
  \ifx\@@met\XC@met@step\else
    \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}%
    \expandafter\XC@calc@\@@tmp,,,,:D%
  \fi
  \@namexdef{\string\colorS@#2}{\@@tmp}%
  \endgroup}
\def\XC@step#1%
 {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}%
  \expandafter\XC@@step\@@tmp{#1}%
  \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}}
\def\XC@@step#1#2#3%
 {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}%
  \@whilenum\@tempcnta>\z@\do
   {\XC@inflate\@@mod\@@tmp\@@vec\@@tmp
    \expandafter\XC@add\@@tmp,\@@tmp \expandafter\XC@calc@\@@tmp,,,,:U%
    \advance\@tempcnta\m@ne}}
\def\XC@stepabs#1%
 {\edef\@@tmp{\@nameuse{\string\colorB@#1}}%
  \expandafter\XC@@step\@@tmp{#1}%
  \edef\@@tmp
   {\noexpand\def\noexpand\@@mod{\@@mod}%
    \noexpand\def\noexpand\@@clr{\@@tmp}}}
\def\blendcolors{\@ifstar{\XC@blendcolors\colorblend}{\XC@blendcolors{}}}
\def\XC@blendcolors#1#2%
 {\edef\colorblend{#1}\XC@edef\XC@@tmp{#2}%
  \ifx\XC@@tmp\@empty
    \xglobal@\blendcolorsfalse
  \else
    \xglobal@\blendcolorstrue
    \expandafter\XC@@blendcolors\XC@@tmp!!\@nil
  \fi
  \xglobalize@\colorblend \xglobal@stop}
\def\XC@@blendcolors!#1!#2!#3\@nil
 {\@ifxempty{#1}{}%
   {\@ifxempty{#2}%
    {\edef\colorblend{\colorblend!#1!white}}%
    {\edef\colorblend{\colorblend!#1!#2}\XC@@blendcolors!#3!\@nil}}}
\blendcolors{}
\def\maskcolors{\@testopt{\XC@maskcolors}{}}
\def\XC@maskcolors[#1]#2%
 {\XC@edef\colormask{#2}%
  \ifx\colormask\@empty
    \xglobal@\maskcolorsfalse \def\XC@mmod{}\def\XC@mclr{}%
  \else
    \xglobal@\maskcolorstrue \extractcolorspec\colormask\XC@mclr
    \edef\XC@mmod{\expandafter\@firstoftwo\XC@mclr}%
    \edef\XC@mclr{\expandafter\@secondoftwo\XC@mclr}%
    \@ifxempty{#1}{}%
     {\convertcolorspec\XC@mmod\XC@mclr{#1}\XC@mclr \edef\XC@mmod{#1}}%
    \XC@coremodel\XC@mmod\XC@mclr
  \fi
  \xglobalize@\colormask \xglobalize@\XC@mmod \xglobalize@\XC@mclr
  \xglobal@stop}
\maskcolors{}
\DeclareRobustCommand\color
 {\@ifnextchar[\@undeclaredcolor\@declaredcolor}
\def\@undeclaredcolor[#1]#2%
 {\begingroup
  \edef\@@mod{#1}\XC@edef\@@clr{#2}%
  \ifblendcolors
    \ifx\colorblend\@empty\else
      \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse
      \XC@coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr
    \fi
  \fi
  \ifconvertcolorsU
    \edef\@@tmp{\XC@tgt@mod{\@@mod}}%
    \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp
  \fi
  \ifmaskcolors
    \convertcolorspec\@@mod\@@clr\XC@mmod\@@clr
    \let\@@mod\XC@mmod
    \XC@inflate\@@mod\XC@mclr\@@clr\@@tmp
    \expandafter\XC@mul\@@tmp,\@@clr
  \fi
  \edef\@@tmp{\noexpand\XC@undeclaredcolor{\@@mod}{\@@clr}}%
  \expandafter\endgroup\@@tmp}
\def\XC@undeclaredcolor#1#2%
 {\@ifundefined{color@#1}%
   {\c@lor@error{model `#1'}}%
   {\@nameuse{color@#1}\current@color{#2}%
    \edef\XC@current@color{\noexpand\xcolor@{}{\current@color}{#1}{#2}}%
    \XC@display}}
\def\@declaredcolor#1%
 {\XC@edef\XC@@tmp{#1}\XC@@tstfalse
  \ifcase\XC@type{\XC@@tmp}\relax \XC@@tsttrue\or \relax\else
    \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi
    \ifconvertcolorsU\XC@@tsttrue\fi
  \fi
  \ifXC@@tst
    \expandafter\XC@declaredcolor
  \else
    \expandafter\XC@@declaredcolor
  \fi}
\def\XC@declaredcolor
 {\XC@split\XC@@tmp
  \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}%
  \expandafter\endgroup\@@tmp}
\def\XC@@declaredcolor
 {\@namelet{XC@current@color}{\string\color@\XC@@tmp}%
  \edef\current@color{\XC@current@color}%
  \XC@display}
\def\@xcolor@#1#2#3#4%
 {\edef\@@mod{#3}\edef\@@clr{#4}%
  \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi
  \if@tempswa
    \@namelet{@@tmp}{XC@cnv@\@@mod @compl}%
    \ifx\@@tmp\relax \expandafter\XC@calc@\@@clr,,,,:C\else
                     \expandafter\@@tmp\@@clr,\fi
    \let\@@clr\@@tmp
  \fi}
\def\@xcolor@@#1!#2!#3!#4!#5\@nil
 {\dimen@\@ifxempty{#1}{100}{#1}\p@
  \edef\@@mix{\@ifxempty{#2}{white}{#2}}%
  \ifdim\dimen@=100\p@
    \expandafter\XC@postfix\@@mix]\relax
  \else\ifdim\dimen@=\z@
    \extractcolorspec\@@mix\@@tmp
    \edef\@@mod{\expandafter\@firstoftwo\@@tmp}%
    \edef\@@clr{\expandafter\@secondoftwo\@@tmp}%
  \else
    \@namelet{@@tmp}{XC@clr@\@@mod @\@@mix}%
    \ifx\@@tmp\relax
      \extractcolorspec\@@mix\@@tmp
      \ifx\@@mod\XC@mod@gray
        \edef\@@mod{\expandafter\@firstoftwo\@@tmp}%
          \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
          \convertcolorspec\XC@mod@gray\@@clr\@@mod\@@clr
      \else
        \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
      \fi
    \else
      \ifx\@@mod\XC@mod@hsb\expandafter\XC@extract@hue\@@clr:\@@hue\fi
    \fi
    \XC@inflate\@@mod\@@clr\@@tmp\@@tmp
    \expandafter\XC@mix\@@tmp,\@@clr
  \fi\fi
  \@ifxempty{#3}%
   {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}%
   {\@xcolor@@#3!#4!#5\@nil}}
\def\XC@split#1%
 {\begingroup\XC@edef\@@tmp{#1}\expandafter\XC@split@i\@@tmp:\@nil}
\def\XC@split@i#1:#2\@nil
 {\@ifxempty{#2}{\XC@split@v}{\XC@split@ii#1,,:#2}}
\def\XC@split@ii#1,#2,#3:#4:%
 {\edef\XC@@mod{\@nameuse{XC@mod@#1}}\let\@tempa\@empty
  \@ifxempty{#2}{\XC@@tsttrue\@tempdima\z@}{\XC@@tstfalse\@tempdima#2\p@}%
  \XC@split@iii#4;,;}
\def\XC@split@iii#1,#2;%
 {\@ifxempty{#1}%
   {\let\XC@@clr\@empty \@tempa \expandafter\XC@calc@\XC@@clr,,,,:U%
    \let\@@mod\XC@@mod \let\@@clr\@@tmp}
   {\XC@append\@tempa{\XC@split@iv{#1}{#2}}%
    \ifXC@@tst\advance\@tempdima#2\p@\fi
    \XC@split@iii}}
\def\XC@split@iv#1#2%
 {\def\@@tmp{#1}\XC@split@v
  \ifx\@@mod\XC@@mod\else
    \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr
  \fi
  \dimen@#2\p@ \rdivide\dimen@\@tempdima
  \edef\@@scl{\strip@pt\dimen@}%
  \expandafter\XC@calc@\@@clr,,,,:S%
  \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else
    \XC@inflate\XC@@mod\XC@@clr\@@tmp\@@tmp
    \expandafter\XC@add\@@tmp,\XC@@clr
  \fi}
\def\XC@split@v{\count@\z@ \expandafter\XC@split@vi\@@tmp!\@nil}
\def\XC@split@vi#1%
 {\ifx#1-\advance\count@\@ne\expandafter\XC@split@vi
  \else\expandafter\XC@split@vii\expandafter#1\fi}
\def\XC@split@vii#1!#2\@nil
 {\edef\@@nam{#1}\edef\@@mix{#2}%
  \ifodd\count@\@tempswatrue\else\@tempswafalse\fi
  \@ifundefined{\string\color@\@@nam}%
   {\c@lor@error{`\@@nam'}\def\@@nam{black}}{}%
  \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}}
\def\XC@postfix#1#2]#3\relax
 {\begingroup
  \if#1[\@tempcnta#2\relax\XC@stepabs\@@nam
  \else\@tempcnta\z@
    \@tfor\@@tok:=#1#2\do
     {\if\@@tok+\advance\@tempcnta\@ne
      \else\if\@@tok-\advance\@tempcnta\m@ne
      \else\@tempcnta\z@\expandafter\@break@tfor\fi\fi}%
    \ifnum\@tempcnta=\z@\relax\else\XC@step\@@nam\fi
    \let\@@tmp\@empty
  \fi\expandafter\endgroup\@@tmp}
\def\XC@display
 {\XC@bcolor\@namelet{\string\color@.}{XC@current@color}%
  \ifnum\XC@type{.}=1
    \PackageWarning{xcolor}{Incompatible color definition}%
  \else
    \ifnum\XC@tracing>2
      \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}%
      \PackageInfo{xcolor}{Setting color `\XC@current@color'}%
      \endgroup
    \fi
  \fi
  \XC@mcolor\set@color\XC@ecolor\ignorespaces}
\let\XC@bcolor\relax
\let\XC@mcolor\relax
\let\XC@ecolor\relax
\def\textcolor#1#{\@textcolor{#1}}
\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}}
\def\color@block#1#2#3{%
 {\set@color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}}
\def\colorbox#1#{\color@box{#1}}
\def\color@box#1#2{\color@b@x\relax{\color#1{#2}}}
\def\fcolorbox#1#{\color@fbox{#1}}
\def\color@fbox#1#2#3{%
  \color@b@x{\fboxsep\z@\color#1{#2}\fbox}{\color#1{#3}}}
\long\def\color@b@x#1#2#3{%
 \leavevmode
 \setbox\z@\hbox{\kern\fboxsep{\set@color#3}\kern\fboxsep}%
 \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@
 \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
 {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}%
      \box\z@}}}
\def\pagecolor
 {\begingroup
  \let\ignorespaces\endgroup \let\set@color\set@page@color
  \color}
\def\XC@bordercolor#1#2%
 {\extractcolorspec{#2}\XC@@tmp
  \expandafter\convertcolorspec\XC@@tmp\XC@mod@rgb\XC@@tmp
  \expandafter\edef\csname @#1bordercolor\endcsname
   {\expandafter\XC@@bordercolor\XC@@tmp,}}
\def\XC@@bordercolor#1,#2,#3,{#1 #2 #3}
\def\XC@pdfborder#1 #2 #3\relax
 {\def\@@scl{80}\XC@calc@#1,#2,#3,,:S%
  \edef\@pdfborder{\expandafter\XC@@bordercolor\@@tmp,}}
\AtBeginDocument{\@ifundefined{ver@colortbl.sty}{}{%
 \def\rowcolors{\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}}%
 \def\rowc@lors{\@testopt{\rowc@l@rs}{}}%
 \def\rowc@l@rs[#1]#2#3#4%
  {\global\rownum=\z@
   \global\@rowcolorstrue
   \@ifxempty{#3}%
     {\def\@oddrowcolor{\@norowcolor}}%
     {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}%
   \@ifxempty{#4}%
     {\def\@evenrowcolor{\@norowcolor}}%
     {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}%
   \if@rowcmd
     \def\@rowcolors
      {#1\if@rowcolors
         \noalign{\relax\ifnum\rownum<#2\@norowcolor\else
                  \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}%
       \fi}%
   \else
     \def\@rowcolors
      {\if@rowcolors
         \ifnum\rownum<#2\noalign{\@norowcolor}\else
         #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi
       \fi}%
   \fi
   \CT@everycr{\noalign{\rownum@step}\@rowcolors\the\everycr}%
   \ignorespaces}%
 \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors}%
 \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}}%
 \def\@norowcolor{\global\let\CT@row@color\relax}%
 \newif\if@rowcolors
 \newif\if@rowcmd
 \ifx\rownum\@undefined\newcount\rownum\fi
 \def\rownum@step{\global\advance\rownum\@ne}%
 \def\CT@extract#1\columncolor#2#3\@nil{%
   \if!#2%
     \let\CT@column@color\@empty
   \else
     \if[#2%
       \CT@extractb{#1}#3\@nil
     \else
       \XC@edef\XC@@tmp{#2}%
       \edef\CT@column@color{\noexpand\CT@color{\XC@@tmp}}%
       \CT@extractd{#1}#3\@nil
     \fi
   \fi}%
 }}
\def\extractcolorspec#1#2%
 {\XC@split{#1}\aftergroupdef#2{{\@@mod}{\@@clr}}}
\def\XC@extract@hue#1,#2:#3{\edef#3{#1}}
\def\XC@type#1%
 {\expandafter\expandafter\expandafter\XC@@type
  \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@}
\def\XC@@type#1#2#3#4\XC@@
 {\ifx#1\relax 0\else
    \ifx#1\xcolor@
      \ifx$#2$%
        \ifx$#3$4\else3\fi\@gobbletwo
      \else2\fi\@gobbletwo
    \else1\fi
  \fi}
\def\tracingcolors{\begingroup\afterassignment\XC@tracingcolors\count@}
\def\XC@tracingcolors{\aftergroupdef\XC@tracing{\the\count@}}
\tracingcolors=0
\def\XC@logdef#1%
 {\ifnum\XC@tracing>1
    \@ifundefined{\string\color@#1}%
     {\ifnum\XC@tracing>2
        \PackageInfo{xcolor}{Defining color `#1'}%
      \fi}%
     {\PackageInfo{xcolor}{Redefining color `#1'}}%
  \fi}
\def\color@setgroup{\begingroup\set@color}
\let\color@begingroup\begingroup
\def\color@endgroup{\endgraf\endgroup}
\def\color@hbox{\hbox\bgroup\color@begingroup}
\def\color@vbox{\vbox\bgroup\color@begingroup}
\def\color@endbox{\color@endgroup\egroup}
\def\convertcolorspec#1#2#3#4%
 {\begingroup
  \edef\sm{#1}\edef\tm{#3}\edef\@@tmp{#2}%
  \ifx\sm\XC@mod@named
    \extractcolorspec\@@tmp\@@tmp
    \edef\sm{\expandafter\@firstoftwo\@@tmp}%
    \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
  \fi
  \ifx\sm\tm\else\csname XC@cnv@\sm\expandafter\endcsname\@@tmp,\fi
  \aftergroupdef#4\@@tmp}
\def\XC@coremodel#1#2%
 {\ifx#1\XC@mod@RGB
    \convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb\else
  \ifx#1\XC@mod@HTML
    \convertcolorspec#1#2\XC@mod@rgb#2\let#1\XC@mod@rgb\else
  \ifx#1\XC@mod@HSB
    \convertcolorspec#1#2\XC@mod@hsb#2\let#1\XC@mod@hsb\else
  \ifx#1\XC@mod@Gray
    \convertcolorspec#1#2\XC@mod@gray#2\let#1\XC@mod@gray\else
  \ifx#1\XC@mod@named\else
  \expandafter\XC@calc@#2,,,,:N\let#2\@@tmp
  \fi\fi\fi\fi\fi}
\def\XC@cnv@rgb#1,#2,#3,%
 {\ifx\tm\XC@mod@cmy
    \XC@calc@#1,#2,#3,,:C%
  \else\ifx\tm\XC@mod@cmyk
    \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@cmy@cmyk\@@tmp,%
  \else\ifx\tm\XC@mod@hsb
    \XC@cnv@rgb@hsb#1,#2,#3,%
  \else\ifx\tm\XC@mod@gray
    \XC@cnv@rgb@gray#1,#2,#3,%
  \else\ifx\tm\XC@mod@RGB
    \edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:M%
  \else\ifx\tm\XC@mod@HTML
    \edef\@@scl{\@cclv}\XC@calc@#1,#2,#3,,:M%
    \expandafter\XC@calc@\@@tmp,,:H%
    \expandafter\XC@cnv@rgb@HTML\@@tmp,%
  \else\ifx\tm\XC@mod@HSB
    \XC@cnv@rgb@hsb#1,#2,#3,%
    \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M%
  \else\ifx\tm\XC@mod@Gray
    \XC@cnv@rgb@gray#1,#2,#3,%
    \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp
  \else
    \XC@calc@#1,#2,#3,,:N%
  \fi\fi\fi\fi\fi\fi\fi\fi}
\def\XC@cnv@rgb@hsb#1,#2,#3,%
 {\count@\z@
  \ifdim#2\p@>#1\p@ \else\advance\count@4 \fi
  \ifdim#3\p@>#2\p@ \else\advance\count@2 \fi
  \ifdim#1\p@>#3\p@ \else\advance\count@1 \fi
  \ifcase\count@\or
  \XC@@cnv@rgb@hsb{#3}{#2}{#1}3{}\or
  \XC@@cnv@rgb@hsb{#2}{#1}{#3}1{}\or
  \XC@@cnv@rgb@hsb{#2}{#3}{#1}3-\or
  \XC@@cnv@rgb@hsb{#1}{#3}{#2}5{}\or
  \XC@@cnv@rgb@hsb{#3}{#1}{#2}5-\or
  \XC@@cnv@rgb@hsb{#1}{#2}{#3}1-\or
  \def\@tempa{0}\def\@tempb{0}\XC@calcN{#3}\@tempc
  \fi
  \edef\@@tmp{\@tempa,\@tempb,\@tempc}}
\def\XC@@cnv@rgb@hsb#1#2#3#4#5%
 {\XC@calcN{#1}\@tempc \llshiftset\dimen@{#1}%
  \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@
  \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@
  \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}%
  \edef\@tempa{\ifdim\@tempdima>\p@1\else\strip@pt\@tempdima\fi}%
  \rdivide\@tempdimb\dimen@
  \edef\@tempb{\strip@pt\@tempdimb}}
\def\XC@cnv@rgb@gray#1,#2,#3,%
 {\llshiftset\dimen@{#1}\@tempdima30\dimen@
  \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@
  \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@
  \rrshift\@tempdima \rdivide\@tempdima{100}%
  \edef\@@tmp{\strip@pt\@tempdima}}
\def\XC@cnv@rgb@HTML#1,#2,#3,%
 {\edef\@@tmp{#1#2#3}}
\def\XC@cnv@cmy#1,#2,#3,%
 {\ifx\tm\XC@mod@rgb
    \XC@calc@#1,#2,#3,,:C%
  \else\ifx\tm\XC@mod@cmyk
    \XC@cnv@cmy@cmyk#1,#2,#3,%
  \else\ifx\tm\XC@mod@hsb
    \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb@hsb\@@tmp,%
  \else\ifx\tm\XC@mod@gray
    \XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp
  \else\ifx\tm\XC@mod@RGB
    \XC@calc@#1,#2,#3,,:C%
    \edef\@@scl{\rangeRGB}\expandafter\XC@calc@\@@tmp,,:M%
  \else\ifx\tm\XC@mod@HTML
    \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb\@@tmp,%
  \else\ifx\tm\XC@mod@HSB
    \XC@calc@#1,#2,#3,,:C\expandafter\XC@cnv@rgb@hsb\@@tmp,%
    \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M%
  \else\ifx\tm\XC@mod@Gray
    \XC@cnv@rgb@gray#1,#2,#3,\XC@calcC\@@tmp\@@tmp
    \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp
  \else
    \XC@calc@#1,#2,#3,,:N%
  \fi\fi\fi\fi\fi\fi\fi\fi}
\def\XC@cnv@cmy@cmyk#1,#2,#3,%
 {\edef\@@scl
   {\ifdim#1\p@<#2\p@
    \ifdim#1\p@<#3\p@ #1\else #3\fi \else
    \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}%
  \expandafter\XC@calc@\adjustUCRBG,:S%
  \expandafter\XC@@cnv@cmy@cmyk\@@tmp,#1,#2,#3,}
\def\XC@@cnv@cmy@cmyk#1,#2,#3,#4,#5,#6,#7,%
 {\XC@add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}%
  \expandafter\XC@calc@\@@tmp,:N}
\def\XC@cnv@cmyk#1,#2,#3,#4,%
 {\ifx\tm\XC@mod@rgb
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C%
  \else\ifx\tm\XC@mod@cmy
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,%
  \else\ifx\tm\XC@mod@hsb
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C%
    \expandafter\XC@cnv@rgb@hsb\@@tmp,%
  \else\ifx\tm\XC@mod@gray
    \XC@cnv@rgb@gray#1,#2,#3,%
    \edef\@@arg{#4}\XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp
  \else\ifx\tm\XC@mod@RGB
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C%
    \edef\@@scl{\rangeRGB}\expandafter\XC@calc@\@@tmp,,:M%
  \else\ifx\tm\XC@mod@HTML
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@cnv@cmy\@@tmp,%
  \else\ifx\tm\XC@mod@HSB
    \XC@cnv@cmyk@cmy#1,#2,#3,#4,\expandafter\XC@calc@\@@tmp,,:C%
    \expandafter\XC@cnv@rgb@hsb\@@tmp,%
    \edef\@@scl{\rangeHSB}\expandafter\XC@calc@\@@tmp,,:M%
  \else\ifx\tm\XC@mod@Gray
    \XC@cnv@rgb@gray#1,#2,#3,%
    \edef\@@arg{#4}\XC@calcT\@@tmp\@@tmp \XC@calcC\@@tmp\@@tmp
    \edef\@@scl{\rangeGray}\XC@calcM\@@tmp\@@tmp
  \else
    \XC@calc@#1,#2,#3,#4,:N%
  \fi\fi\fi\fi\fi\fi\fi\fi}
\def\XC@cnv@cmyk@cmy#1,#2,#3,#4,%
 {\edef\@@arg{#4}\XC@calc@#1,#2,#3,,:T}
\def\XC@cnv@hsb#1,#2,#3,%
 {\ifx\tm\XC@mod@HSB
    \edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:M%
  \else
    \XC@cnv@hsb@rgb#1,#2,#3,%
    \ifx\tm\XC@mod@rgb\else\expandafter\XC@cnv@rgb\@@tmp,\fi
  \fi}
\def\XC@cnv@hsb@rgb#1,#2,#3,%
 {\llshiftset\dimen@{#1}\dimen@6\dimen@ \rrshift\dimen@
  \afterassignment\dimen@\count@=\the\dimen@
  \edef\@@tmp{\strip@pt\dimen@}%
  \ifodd\count@\else\XC@calcC\@@tmp\@@tmp\fi
  \edef\@@tmp
   {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or
    1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}%
  \edef\@@scl{#2}\expandafter\XC@calc@\@@tmp,,:S%
  \expandafter\XC@calc@\@@tmp,,:C%
  \edef\@@scl{#3}\expandafter\XC@calc@\@@tmp,,:S}
\def\XC@cnv@gray#1,%
 {\ifx\tm\XC@mod@rgb
    \XC@calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}%
  \else\ifx\tm\XC@mod@cmy
    \XC@calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}%
  \else\ifx\tm\XC@mod@cmyk
    \XC@calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}%
  \else\ifx\tm\XC@mod@hsb
    \XC@calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}%
  \else\ifx\tm\XC@mod@RGB
    \edef\@@scl{\rangeRGB}\XC@calcM{#1}\@@tmp
    \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}%
  \else\ifx\tm\XC@mod@HTML
    \edef\@@scl{\@cclv}\XC@calcM{#1}\@@tmp \XC@calcH\@@tmp\@@tmp
    \edef\@@tmp{\@@tmp\@@tmp\@@tmp}%
  \else\ifx\tm\XC@mod@HSB
    \edef\@@scl{\rangeHSB}\XC@calcM{#1}\@@tmp
    \edef\@@tmp{0,0,\@@tmp}%
  \else\ifx\tm\XC@mod@Gray
    \edef\@@scl{\rangeGray}\XC@calcM{#1}\@@tmp
  \else
    \XC@calcN{#1}\@@tmp
  \fi\fi\fi\fi\fi\fi\fi\fi}
\def\XC@cnv@RGB#1,#2,#3,%
 {\edef\@@scl{\rangeRGB}\XC@calc@#1,#2,#3,,:D\expandafter\XC@cnv@rgb\@@tmp,}
\def\XC@cnv@HTML#1,%
 {\edef\@@tmp{\expandafter\@hex@Hex#1\relax}\expandafter\XC@cnv@HTML@\@@tmp
  \edef\@@scl{\@cclv}\expandafter\XC@calc@\@@tmp,,:D%
  \expandafter\XC@cnv@rgb\@@tmp,}
\def\XC@cnv@HTML@#1#2#3#4#5#6%
 {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}}
\def\XC@cnv@HSB#1,#2,#3,%
 {\edef\@@scl{\rangeHSB}\XC@calc@#1,#2,#3,,:D\expandafter\XC@cnv@hsb\@@tmp,}
\def\XC@cnv@Gray#1,%
 {\edef\@@scl{\rangeGray}\XC@calcD{#1}\@@tmp \XC@cnv@gray\@@tmp,}
\def\XC@cnv@cmyk@compl#1,#2,#3,#4,%
 {\XC@cnv@cmyk@cmy#1,#2,#3,#4,%
  \expandafter\XC@calc@\@@tmp,,:C%
  \expandafter\XC@cnv@cmy@cmyk\@@tmp,}
\def\XC@cnv@hsb@compl#1,#2,#3,%
 {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p@-\fi-5\p@
  \rshift\dimen@
  \edef\@@tmp{\strip@pt\dimen@}%
  \lshiftset\dimen@{#3}%
  \@tempdima#2\dimen@
  \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@
  \ifdim\@tempdimb=\z@
    \edef\@@tmp{\@@tmp,0,0}%
  \else
    \rdivide\@tempdima\@tempdimb \rshift\@tempdimb
    \edef\@@tmp{\@@tmp,\strip@pt\@tempdima,\strip@pt\@tempdimb}%
  \fi}
\ifx\color@rgb\@undefined
  \PackageInfo{xcolor}{Color model `rgb' added}
  \def\color@rgb#1#2%
   {\convertcolorspec\XC@mod@rgb{#2}\XC@mod@cmyk\XC@@tmp
    \expandafter\color@cmyk\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@cmyk\@undefined
  \PackageInfo{xcolor}{Color model `cmyk' added}
  \def\color@cmyk#1#2%
   {\convertcolorspec\XC@mod@cmyk{#2}\XC@mod@rgb\XC@@tmp
    \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@cmy\@undefined
  \PackageInfo{xcolor}{Color model `cmy' added}
  \def\color@cmy#1#2{\color@cmyk#1{#2,0}}
\fi
\ifx\color@hsb\@undefined\@tempswatrue
\else\def\@@tmp{dvipdfm.def}\ifx\@@tmp\Gin@driver\@tempswatrue
\else\def\@@tmp{textures.def}\ifx\@@tmp\Gin@driver\@tempswatrue
\else\@tempswafalse\fi\fi\fi
\if@tempswa
  \PackageInfo{xcolor}{Color model `hsb' added}
  \def\color@hsb#1#2%
   {\convertcolorspec\XC@mod@hsb{#2}\XC@mod@rgb\XC@@tmp
    \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@gray\@undefined
  \PackageInfo{xcolor}{Color model `gray' added}
  \def\color@gray#1#2{\color@rgb#1{#2,#2,#2}}
\fi
\ifx\color@RGB\@undefined\@tempswatrue
\else\ifnum\rangeRGB<255 \@tempswatrue
\else\ifnum\rangeRGB>255 \@tempswatrue
\else\@tempswafalse\fi\fi\fi
\if@tempswa
  \PackageInfo{xcolor}{Color model `RGB' added}
  \def\color@RGB#1#2%
   {\convertcolorspec\XC@mod@RGB{#2}\XC@mod@rgb\XC@@tmp
    \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@HTML\@undefined
  \PackageInfo{xcolor}{Color model `HTML' added}
  \def\color@HTML#1#2%
   {\convertcolorspec\XC@mod@HTML{#2}\XC@mod@rgb\XC@@tmp
    \expandafter\color@rgb\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@HSB\@undefined
  \PackageInfo{xcolor}{Color model `HSB' added}
  \def\color@HSB#1#2%
   {\convertcolorspec\XC@mod@HSB{#2}\XC@mod@hsb\XC@@tmp
    \expandafter\color@hsb\expandafter#1\expandafter{\XC@@tmp}}
\fi
\ifx\color@Gray\@undefined
  \PackageInfo{xcolor}{Color model `Gray' added}
  \def\color@Gray#1#2%
   {\convertcolorspec\XC@mod@Gray{#2}\XC@mod@gray\XC@@tmp
    \expandafter\color@gray\expandafter#1\expandafter{\XC@@tmp}}
\fi
\@ifundefined{XC@pst}{%
\def\XC@getcolor#1#2%
 {\begingroup
  \XC@@getcolor#1\XC@@
  \toks@\expandafter{\@@tmp}\aftergroupdef#2{\the\toks@}}
\def\XC@@getcolor#1#2\XC@@
 {\@ifxempty{#2}%
   {\expandafter\XC@@@getcolor#1\XC@@}%
   {\color{#1#2}\let\@@tmp\XC@current@color}}
\def\XC@@@getcolor#1#2\XC@@
 {\ifx#1\xcolor@
    \def\@@tmp{\xcolor@#2}%
  \else
    \color{#1#2}\let\@@tmp\XC@current@color
  \fi}
}{% compatibility code begin
\def\XC@getcolor#1#2%
 {\@ifundefined{\string\color@#1}%
   {\begingroup\color{#1}%
    \edef\@@tmp
     {\noexpand\edef\noexpand#2{\noexpand\expandafter\noexpand\c@lor@to@ps
      \current@color\noexpand\@@}}%
    \expandafter\endgroup\@@tmp}%
   {\edef#2{\XC@usecolor{#1}}}}
}% compatibility code end
\def\XC@usecolor#1{\expandafter\XC@@usecolor#1\XC@@}
\def\XC@@usecolor#1#2\XC@@
 {\ifx#1\xcolor@
    \expandafter\expandafter\expandafter\c@lor@to@ps#1#2\@@
  \else
    \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
    \expandafter\c@lor@to@ps\csname\string\color@#1#2\endcsname\@@
  \fi
  \space}
\let\XC@c@lor@to@ps\XC@usecolor
\let\pst@getcolor\XC@getcolor
\@ifundefined{XC@pst}{%
  \let\pst@usecolor\XC@usecolor
}{}
\def\c@lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa}
\def\normalcolor{\let\current@color\default@color\set@color}
\AtBeginDocument{\let\default@color\current@color}
\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvips}{pctex32}\do
 {\edef\@@tmp{\@@tmp.def}%
  \ifx\Gin@driver\@@tmp
    \def\c@lor@@named#1,#2,#3\@@#4{\edef#4{ #1}}
    \def\define@color@named#1#2{\let\@@col\@nnil}
  \@break@tfor\fi}
\@tfor\@@tmp:={dvipsone}{pctexps}{pdftex}{tcidvi}{truetex}{vtex}\do
 {\edef\@@tmp{\@@tmp.def}%
  \ifx\Gin@driver\@@tmp
    \def\c@lor@@named#1,#2,#3\@@#4%
     {\edef#4{\expandafter\expandafter\expandafter\@secondoffive
               \csname\string\color@#1\endcsname}}
    \def\define@color@named#1#2%
     {\edef\@@col{#2}\@namedef{\string\color@#1}{{}{#2}{}{}{}}}
  \@break@tfor\fi}
\@tfor\@@tmp:={textures}\do
 {\edef\@@tmp{\@@tmp.def}%
  \ifx\Gin@driver\@@tmp
    \def\c@lor@@named#1,#2,#3\@@#4%
     {\edef\@tempa{\color@P@custom{#1}{\if!#2!1\else#2\fi}}%
      \expandafter\def\expandafter#4\@tempa}
    \def\define@color@named#1#2%
     {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa
      \edef\@@col{#2}}
  \@break@tfor\fi}
\definecolorset{rgb}{}{}{red,1,0,0;green,0,1,0;blue,0,0,1}
\definecolorset{cmyk}{}{}{cyan,1,0,0,0;magenta,0,1,0,0;yellow,0,0,1,0}
\definecolorset{gray}{}{}{black,0;darkgray,.25;gray,.5;lightgray,.75;white,1}
\colorlet{orange}{red!50!yellow}
\colorlet{violet}{blue!50!red}
\colorlet{purple}{violet!50!red}
\colorlet{brown}{violet!50!yellow}
\XC@colornames
\XC@catcodes
\let\XC@catcodes\relax
\@nameuse{xcolorcmd}
\color{black}
\endinput
%%
%% End of file `xcolor.sty'.